package conson.tech.manage.api.coupons.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * InterfaceName: UserCouponPageDTO
 * Description: 用户券码配置详情
 * Author: guoxt
 */
@Data
public class UserCouponDetailDTO implements Serializable {

    /**
     * 优惠券券码
     */
    @ApiModelProperty(value = "优惠券券码")
    private String couponsCode;
    /**
     * 优惠券批次名称
     */
    @ApiModelProperty(value = "优惠券批次名称")
    private String batchName;
    /**
     * 优惠券批次类型
     */
    @ApiModelProperty(value = "优惠券批次类型 0-现金券 1-满减券")
    private Integer batchType;
    /**
     * 使用限制说明
     */
    @ApiModelProperty(value = "使用限制说明")
    private String usedDes;
    /**
     * 优惠券类型名称
     */
    @ApiModelProperty(value = "优惠券类型名称")
    private String batchTypeName;
    /**
     * 优惠券发券主体
     */
    @ApiModelProperty(value = "优惠券发券主体 0-平台 1-商家")
    private Integer provider;
    /**
     * 使用范围类型 0-全平台，1-场景 2-商-商品品类 4-商品spuId
     */
    @ApiModelProperty(value = "使用范围类型 0-全平台，1-场景 2-商户 3-商品品类 4-商品spuId")
    private Integer rangeType;
    /**
     * 优惠券金额
     */
    @ApiModelProperty(value = "优惠券金额")
    private BigDecimal batchMoney;
    /**
     * 优惠券限额
     */
    @ApiModelProperty(value = "优惠券限额")
    private BigDecimal limitMoney;
    /**
     * 券批次号
     */
    @ApiModelProperty(value = "券批次号")
    private Long batchId;
    /**
     * 有效期开始时间
     */
    @ApiModelProperty(value = "有效期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
    /**
     * 有效期结束时间
     */
    @ApiModelProperty(value = "有效期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
    /**
     * 状态（0有效、1已使用、2已过期、3已作废）
     */
    @ApiModelProperty(value = "状态（0有效、1已使用、2已过期、3已作废）")
    private Integer state;

    /**
     * 券使用范围
     */
    @ApiModelProperty(value = "券使用范围")
    private List<CouponUsingRangeDTO> couponUsingRangeList;

}
